# -*- coding: utf-8 -*-
"""
@Time    : 2024/6/27 15:01 
@Author  : ZhangShenao 
@File    : basic.py 
@Desc    : Iterator迭代器
Iterator是指具有迭代功能的对象,我们使用迭代器来进行迭代操作

for循环本质上就是iterator的语法糖,它在iterator上做了一层封装,主要做了一下几件事:
    1. 对一个容器调用iter()函数,获取到该容器的迭代器
    2. 每次循环时对迭代器调用next()函数,以获取一个值
    3. 若捕获到StopIteration异常则结束循环
"""

# 使用iter()函数,获取一个容器的迭代器
list_iterator = iter([1, 2, 3, 4, 5])
print(f'list_iterator: {list_iterator}')  # list_iterator: <list_iterator object at 0x102839f90>
tuple_iterator = iter((1, 2, 3, 4, 5))
print(f'tuple_iterator: {tuple_iterator}')  # tuple_iterator: <tuple_iterator object at 0x102e659f0>

# 调用iterator的next()函数,可以逐一获取iterator中的元素
# 当没有剩余元素时,会抛出StopIteration异常
print(next(list_iterator))  # 1
print(next(list_iterator))  # 2
